#ifndef __DRIVER_ATIM_H__
#define __DRIVER_ATIM_H__

#include "Common_Config.h"
#include "Driver_GPIO.h"

#include <stdbool.h>

typedef enum
{
    ATIM_GPIO_INDEX_YT1,
    ATIM_GPIO_INDEX_YTR1,
    ATIM_GPIO_INDEX_YT2,
    ATIM_GPIO_INDEX_YTR2,
    ATIM_GPIO_INDEX_YTRX,
    ATIM_GPIO_INDEX_AM3,
    ATIM_GPIO_INDEX_AM4,
    ATIM_GPIO_INDEX_MAX
} ATIMGPIOIndex_e;

/**
 * @brief 高级定时器初始化, 做为PWM输出
 *
 */
void Driver_ATIM_Init(void);

/**
 * @brief 按照设定的占空比 使能或禁用 选择的通道
 *
 * @param atim
 * @param channel           通道号
 * @param isComplementary   是否为互补通道
 * @param dutyCycle         占空比
 * @param isEnable          是否使能
 */
void Driver_ATIM_SetChannelDutyAndState(void *atim, uint32_t channel, bool isComplementary,
                                        uint8_t dutyCycle, bool isEnable);

#endif
